#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :

class Cat:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def print_info(self):
        print(f'我是：{self.name}，今年{self.age}岁')


buou = Cat('布偶', 3)
buou.print_info()

# 如果用户传递是一个不合法的数据。
bosi = Cat('波斯', -3)
bosi.print_info()

"""
私有属性是用来保护数据的
"""


class Person:
    def __init__(self, name, age):
        self.name = name
        # 如果属性名称前有两个下划线，则该属性为私有属性，外部不能直接访问
        self.__age = age

    # 如果希望获取当前私有属性的值，必须自己创建一个获取私有属性的方法
    def get_attr(self):
        if self.__age > 0:
            print('年龄：{}'.format(self.__age))
        else:
            print('年龄必须大于0')

    def set_attr(self, value):
        if value > 0:
            self.__age = value
        else:
            print('年龄必须大于0')


anna = Person('安娜', 18)

print(anna.name)

# 私有属性不能再这个类的外面进行访问和调用
anna.get_attr()


"""
私有属性的定义：
    __属性名称
    
私有属性如何使用？
    如果想要获取一个私有属性的值，我们必须要在一个类的内部定义一个获取私有属性值的一个方法
    修改一个私有属性的值同理，也需要定义一个修改私有属性值的方法

"""


# 设置年龄
anna.set_attr(10)
anna.get_attr()
